// Copyright  2004-2008 Backplane Ltd.
//
// This file is part of Ubiquity formsPlayer
//
// Ubiquity formsPlayer is free software; you can redistribute it and/or modify it
// under the terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3 of the License, or (at your
// option) any later version.
//
// Ubiquity formsPlayer is distributed in the hope that it will be useful, but WITHOUT
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
// more details.
//
// You should have received a copy of the GNU General Public License
// along with Ubiquity formsPlayer If not, see <http://www.gnu.org/licenses/>.
//	
//
//   Purpose:  DOM level 3 Implementation Registry utility function prototypes..
//   $Id$


#include <DOM/DOM3ImplReg/DOM3ImplReg.h>

namespace xport {
	// Initialise the implementation registry.
	HRESULT InitImplReg(IDOMImplementationRegistry **ppImplReg);

	// Get a DOM implementation of the specified feature(s).
	HRESULT GetImplementation(const BSTR sFeatures, IDOMImplementation **ppImpl, IDOMImplementationRegistry **ppImplReg);

	// Get a DOM implementation list of the specified feature.
	HRESULT GetImplementations(const BSTR sFeature, const BSTR sVersion, IDOMImplementationList **ppImplList, IDOMImplementationRegistry **ppImplReg);

	// Get the first available DOM implementation of the specified feature.
	HRESULT GetFirstImplementation(const BSTR sFeature, const BSTR sVersion, IUnknown **ppFeat, IDOMImplementationRegistry **ppImplReg);

	// Get the nth available DOM implementation of the specified feature.
	HRESULT GetNthImplementation(const BSTR sFeature, const BSTR sVersion, long nIndex, IUnknown **ppFeat, IDOMImplementationRegistry **ppImplReg);
}
